A requirements document is a document containing all the requirements to a certain product or service. It is written to allow people to understand what a product should do. A requirements document should, however, generally avoid anticipating or defining how the product will do it in order to later allow interface designers and engineers to use their expertise to provide the optimal solution to the requirements. Requirements are often difficult for even a knowledgeable person to understand and nearly impossible for software applications to use them in an impactful way.